package javax.core.common;

import java.io.Serializable;

/**
 * 响应结果封装集对象
 *
 * @author raos
 * @emil 991207823@qq.com
 * @date 2021/8/30 21:03
 */
public class ResultMsg<T> implements Serializable {

    private static final long serialVersionUID = 1630328970000L;
    /** 状态码*/
    private int status;
    /** 消息提示*/
    private String msg;
    /** 响应结果*/
    private T data;

    /**
     * 无参构造
     */
    public ResultMsg() { }

    /**
     * 有参构造
     * @param status 状态码
     */
    public ResultMsg(int status) {
        this.status = status;
    }

    /**
     * 有参构造
     * @param status 状态码
     * @param msg 消息内容
     */
    public ResultMsg(int status, String msg) {
        this.status = status;
        this.msg = msg;
    }

    /**
     * 有参构造
     * @param status 状态码
     * @param data 数据信息
     */
    public ResultMsg(int status, T data) {
        this.status = status;
        this.data = data;
    }

    /**
     * 完整有参构造
     * @param status 状态码
     * @param msg 消息内容
     * @param data 数据信息
     */
    public ResultMsg(int status, String msg, T data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 获取状态码
     * @return
     */
    public int getStatus() {
        return status;
    }

    /**
     * 设置状态码（链式编程）
     * @param status
     * @return
     */
    public ResultMsg<T> setStatus(int status) {
        this.status = status;
        return this;
    }

    /**
     * 获取消息
     * @return
     */
    public String getMsg() {
        return msg;
    }

    /**
     * 设置消息（链式编程）
     * @param msg
     * @return
     */
    public ResultMsg<T> setMsg(String msg) {
        this.msg = msg;
        return this;
    }

    /**
     * 获取数据信息
     * @return
     */
    public T getData() {
        return data;
    }

    /**
     * 设置数据信息（链式编程）
     * @param data
     * @return
     */
    public ResultMsg<T> setData(T data) {
        this.data = data;
        return this;
    }

}
